PROGRAM retrait;

USES Types;


Procedure retrait(ID_Compte : INTEGER;  VAR tabcompte : TTabCompte)	;						// Définition du nom de notre procédure ainsi que ses paramètres en entrée-sortie
 
Var
	montant: INTEGER;
	i: INTEGER;
	
BEGIN 
		    
		i :=indiceCompte(ID_Compte,tabcompte) ; 											//Fait appel à la fonction indiceCompte afin de connaître l'emplacement dans la collectionCompte
		montant:= tabcompte.compteclient[i].solde;											//On charge dans la var montant le solde de notre compte
		WHILE(montant<=tabcompte.compteclient[i].solde) DO;
		BEGIN
			WRITELN('Entrer le montant désirer à virer');
			READLN(montant);
			IF(montant>tabcompte.compteclient[i].solde+tabcompte.compteclient[i].limite) THEN
				WRITELN('Votre solde est de ',tabcompte.compteclient[i].solde, 'vous ne pouvez pas retirer plus');
		END;
																							//Boucle qui demande le montant à virer et qui contrôle que ce soit bien possible en tenant compte de la limite du compte
		
		tabcompte.compteclient[i].solde:= tabcompte.compteclient[i].solde - montant;
		WRITELN('Solde :',tabcompte.compteclient[i].solde);									//Modification et affichage du solde
	
END;

VAR

	ID_Compte : INTEGER;
	tabcompte : TTabCompte;
	
BEGIN

	retrait(ID_Compte,tabcompte);
	
END.
